本篇文章同步發表在 HKT 線上教室 部落格,線上影音教學課程已上架至 Udemy 和 Youtube 頻道。另外,想追蹤更多相關技術資訊,歡迎到 臉書粉絲專頁 按讚追蹤喔~
範例名稱:RecyclerView 進階項目佈局
開發人員:HKT (侯光燦)
程式語言:Kotlin
開發環境:Android Studio 4.1.2 & Android 11 & Kotlin 1.4.21
授權範圍:使用時必須註明出處且不得為商業目的之使用
範例下載點:點我下載
昨天,我們使用了一個 TextView,顯示藥局名稱,這次我們想要讓項目,顯示更多口罩重點資訊,所以我們將進行調整項目佈局。
置中顯示藥局名稱與大人、小孩口罩數量。
修改 layout/item_view.xml。
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:clickable="true"
android:paddingBottom="20dp"
android:focusable="true">
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="15dp"
android:text="藥局名稱"
android:textColor="#424242"
android:textSize="30dp"
app:layout_constraintBottom_toTopOf="@+id/layout_adult"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layout_adult"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/layout_child"
app:layout_constraintTop_toBottomOf="@+id/tv_name">
<TextView
android:id="@+id/tv_adult"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="成人口罩"
android:textSize="20dp"
android:textStyle="bold"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_adult_amount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="口罩數量"
android:textSize="16dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_adult" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layout_child"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toRightOf="@+id/layout_adult"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_name">
<TextView
android:id="@+id/tv_child"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="小孩口罩"
android:textSize="20dp"
android:textStyle="bold"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_child_amount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="口罩數量"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_child" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
修改 MainAdapter.kt,將大人與小孩的口罩數量,綁定到指定元件顯示。
...
...
...
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
holder.itemViewBinding.tvName.text = pharmacyList[position].properties.name
holder.itemViewBinding.tvAdultAmount.text = pharmacyList[position].properties.mask_adult.toString()
holder.itemViewBinding.tvChildAmount.text = pharmacyList[position].properties.mask_child.toString()
}
...
...
...
HKT 線上教室
https://tw-hkt.blogspot.com/
Freepik
https://www.freepik.com/
Create a List with RecyclerView
https://developer.android.com/guide/topics/ui/layout/recyclerview
RecyclerView Reference
https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView
Android RecyclerView Sample (Kotlin)
https://github.com/android/views-widgets-samples/tree/master/RecyclerViewKotlin
那今天【iThome 鐵人賽】就介紹到這邊囉~
順帶一提,KT 線上教室,臉書粉絲團,會不定期發佈相關資訊,不想錯過最新資訊,不要忘記來按讚,追蹤喔!也歡迎大家將這篇文章分享給更多人喔。
我們明天再見囉!!!掰掰~